package entity;

/**
 * @author JDL
 */

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Embeddable;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "Mesas")
@Embeddable
public class MesaBD implements Serializable {
	private static final long serialVersionUID = 1L;

	@EmbeddedId
	private MesaId pk;

	private Integer cantLugares;
	private String estado;

	@Embedded
	@OneToOne(cascade = CascadeType.ALL)
	private MozoBD mozo;
	
	@Embedded
	@OneToOne(cascade = CascadeType.ALL)
	private MesaBD mesas;

	@Embedded
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumns({@JoinColumn(name="mesa_idRestaurante"), @JoinColumn(name="mesa_idSector"), @JoinColumn(name="mesa_numero")})
	private List<ComandaBD> comandas;

//	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
//	private List<EstadisticaPermanenciaBD> estadisticas;

	public MesaBD() {

	}

	public MesaId getPk() {
		return pk;
	}

	public void setPk(MesaId pk) {
		this.pk = pk;
	}

	public Integer getCantLugares() {
		return cantLugares;
	}

	public void setCantLugares(Integer cantLugares) {
		this.cantLugares = cantLugares;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public MozoBD getMozo() {
		return mozo;
	}

	public void setMozo(MozoBD mozo) {
		this.mozo = mozo;
	}

	public MesaBD getMesas() {
		return mesas;
	}

	public void setMesas(MesaBD  mesas) {
		this.mesas = mesas;
	}

	public List<ComandaBD> getComandas() {
		return comandas;
	}

	public void setComandas(List<ComandaBD> comandas) {
		this.comandas = comandas;
	}

//	public List<EstadisticaPermanenciaBD> getEstadisticas() {
//		return estadisticas;
//	}
//
//	public void setEstadisticas(List<EstadisticaPermanenciaBD> estadisticas) {
//		this.estadisticas = estadisticas;
//	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

}
